/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.server.modules.sys.entity.hxchatrecord;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.server.common.persistence.DataEntity;

/**
 * 环信聊天记录Entity
 * @author 丁光彪
 * @version 2016-10-26
 */
public class HxChatRecord extends DataEntity<HxChatRecord> {
	
	private static final long serialVersionUID = 1L;
	protected String fromHxusername;		// 发送人环信username
	protected String toHxusername;		// 接收人环信username或者接收group的ID
	protected String msgId;		// 环信那边的消息id
	protected String chatType;		// //用来判断单聊还是群聊。chat: 单聊；groupchat: 群聊
	protected String msg;		// 消息内容
	protected String type;		// 消息类型。txt: 文本消息；img: 图片；loc: 位置；audio: 语音
	protected String length;		// 语音时长，单位为秒，这个属性只有语音消息有
	protected String url;		// 图片语音等文件的网络URL，图片和语音消息有这个属性
	protected String filename;		// 文件名字，图片和语音消息有这个属性
	protected String secret;		// 获取文件的secret，图片和语音消息有这个属性
	protected String lat;		// 发送的位置的纬度，只有位置消息有这个属性
	protected String lng;		// 位置经度，只有位置消息有这个属性
	protected String addr;		// 位置消息详细地址，只有位置消息有这个属性
	protected Date sendTime;		// send_time
	protected String thumb;		// thumb
	protected String thumbSecret;		// thumb_secret
	protected Long fileLength;		// file_length
	protected String ext;		// ext
	protected Long sendTimeMs;
	
	
	public Long getSendTimeMs() {
		return sendTimeMs;
	}

	public void setSendTimeMs(Long sendTimeMs) {
		this.sendTimeMs = sendTimeMs;
	}

	public HxChatRecord() {
		super();
	}

	public HxChatRecord(String id){
		super(id);
	}

	@Length(min=0, max=64, message="发送人环信username长度必须介于 0 和 64 之间")
	public String getFromHxusername() {
		return fromHxusername;
	}

	public void setFromHxusername(String fromHxusername) {
		this.fromHxusername = fromHxusername;
	}
	
	@Length(min=0, max=64, message="接收人环信username或者接收group的ID长度必须介于 0 和 64 之间")
	public String getToHxusername() {
		return toHxusername;
	}

	public void setToHxusername(String toHxusername) {
		this.toHxusername = toHxusername;
	}
	
	@Length(min=0, max=64, message="环信那边的消息id长度必须介于 0 和 64 之间")
	public String getMsgId() {
		return msgId;
	}

	public void setMsgId(String msgId) {
		this.msgId = msgId;
	}
	
	@Length(min=0, max=16, message="//用来判断单聊还是群聊。chat: 单聊；groupchat: 群聊长度必须介于 0 和 16 之间")
	public String getChatType() {
		return chatType;
	}

	public void setChatType(String chatType) {
		this.chatType = chatType;
	}
	
	@Length(min=0, max=255, message="消息内容长度必须介于 0 和 255 之间")
	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	
	@Length(min=0, max=16, message="消息类型。txt: 文本消息；img: 图片；loc: 位置；audio: 语音长度必须介于 0 和 16 之间")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@Length(min=0, max=16, message="语音时长，单位为秒，这个属性只有语音消息有长度必须介于 0 和 16 之间")
	public String getLength() {
		return length;
	}

	public void setLength(String length) {
		this.length = length;
	}
	
	@Length(min=0, max=255, message="图片语音等文件的网络URL，图片和语音消息有这个属性长度必须介于 0 和 255 之间")
	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}
	
	@Length(min=0, max=32, message="文件名字，图片和语音消息有这个属性长度必须介于 0 和 32 之间")
	public String getFilename() {
		return filename;
	}

	public void setFilename(String filename) {
		this.filename = filename;
	}
	
	@Length(min=0, max=255, message="获取文件的secret，图片和语音消息有这个属性长度必须介于 0 和 255 之间")
	public String getSecret() {
		return secret;
	}

	public void setSecret(String secret) {
		this.secret = secret;
	}
	
	@Length(min=0, max=255, message="发送的位置的纬度，只有位置消息有这个属性长度必须介于 0 和 255 之间")
	public String getLat() {
		return lat;
	}

	public void setLat(String lat) {
		this.lat = lat;
	}
	
	@Length(min=0, max=255, message="位置经度，只有位置消息有这个属性长度必须介于 0 和 255 之间")
	public String getLng() {
		return lng;
	}

	public void setLng(String lng) {
		this.lng = lng;
	}
	
	@Length(min=0, max=255, message="位置消息详细地址，只有位置消息有这个属性长度必须介于 0 和 255 之间")
	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getSendTime() {
		return sendTime;
	}

	public void setSendTime(Date sendTime) {
		this.sendTime = sendTime;
	}
	
	@Length(min=0, max=255, message="thumb长度必须介于 0 和 255 之间")
	public String getThumb() {
		return thumb;
	}

	public void setThumb(String thumb) {
		this.thumb = thumb;
	}
	
	@Length(min=0, max=255, message="thumb_secret长度必须介于 0 和 255 之间")
	public String getThumbSecret() {
		return thumbSecret;
	}

	public void setThumbSecret(String thumbSecret) {
		this.thumbSecret = thumbSecret;
	}
	
	public Long getFileLength() {
		return fileLength;
	}

	public void setFileLength(Long fileLength) {
		this.fileLength = fileLength;
	}
	
	@Length(min=0, max=512, message="ext长度必须介于 0 和 512 之间")
	public String getExt() {
		return ext;
	}

	public void setExt(String ext) {
		this.ext = ext;
	}
	
}